Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Altsystem</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Altsystem"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Altsystem rootpage-Altsystem skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Altsystem</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">

<p>Der Begriff <b>Altsystem</b>, <b>Legacy-System</b> (<span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic"><i>legacy system</i></span>) oder im engeren Sinne <b>Legacy-Code</b> bezeichnet in der <a href="Informatik" title="Informatik">Informatik</a> eine etablierte, historisch gewachsene Anwendung im Bereich der <a href="Unternehmenssoftware" title="Unternehmenssoftware">Unternehmenssoftware</a>. Das englische Wort <i>legacy</i> („Erbschaft“) ist in diesem Kontext ein weitgehend wertfreier <a href="Terminus" title="Terminus">Fachbegriff</a>. Er kann aber umgangssprachlich auch negativ im Sinne einer lästigen „Hinterlassenschaft“ oder „<a href="Altlast" title="Altlast">Altlast</a>“ im übertragenen Sinne verwendet werden.
</p>

<div class="mw-heading mw-heading2"><h2 id="Theorie">Theorie</h2></div>
<p>In seinem <a href="Institute_of_Electrical_and_Electronics_Engineers" title="Institute of Electrical and Electronics Engineers">IEEE</a>-Artikel liefert Sebastian Rosenkranz (und andere) eine detaillierte empirische Beschreibung über die Eigenschaften von Altsystemen, sowie einer Darstellung über die Ursachen, die zur Ausbildung von Altsystemen beitragen, und die Folgen, die mit dem Einsatz solch gealterter Informationssysteme einhergehen. Außerdem wird ein theoretisches Modell vorgeschlagen, mit dem Altsysteme (<span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">Legacy Information Systems</span>) greifbar gemacht werden können.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Eine mögliche Kurzdefinitionen lieferte Michael C. Feathers:<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="Vorlage_Zitat" style="margin:1em 40px;">
<div style="margin:1em 0;"><blockquote style="margin:0;">
<p>„In the industry, legacy code is often used as a slang term for difficult-to-change code that we don’t understand. But over years of working with teams, helping them get past serious code problems, I’ve arrived at a different definition. To me, legacy code is simply code without tests.“
</p>
</blockquote>
</div><div class="cite" style="margin:-1em 0 1em 1em;">– <style data-mw-deduplicate="TemplateStyles:r261921330">
/* start https://de.wikipedia.org/ */


.mw-parser-output .Person{font-variant:small-caps}


/* end https://de.wikipedia.org/ */
</style><span class="Person h-card">Michael C. Feathers</span>: <cite style="font-style:normal"><i>Working Effectively with Legacy Code</i>, 2004</cite></div></div><div class="Vorlage_Zitat" style="margin:1em 40px;">
<div style="margin:1em 0;"><blockquote style="margin:0;">
<p>„In der Branche wird Legacy-Code oft als umgangssprachlicher Begriff für schwer zu ändernden Code verwendet, den wir nicht verstehen. Aber im Laufe der Jahre, in denen ich mit Teams zusammengearbeitet und ihnen geholfen habe, ernsthafte Codeprobleme zu überwinden, bin ich zu einer anderen Definition gelangt. Für mich ist Legacy-Code einfach nur Programmcode ohne <a href="Modultest" title="Modultest">Tests</a>.“
</p>
</blockquote>
</div></div>
<p>Weitere Definitionen zielen auf die Folgen für Entwickler ab, die mit dem Legacy-Code anvertraut wurden:<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="Vorlage_Zitat" style="margin:1em 40px;">
<div style="margin:1em 0;"><blockquote style="margin:0;">
<p>„Die Entwickler scheuen sich, den Code zu verändern oder zu erweitern („Never touch a running system“).“
</p>
</blockquote>
</div></div>
<div class="mw-heading mw-heading2"><h2 id="Eigenschaften">Eigenschaften</h2></div>
<p>Beispiele für Altsysteme innerhalb der Anwendungslandschaft eines Unternehmens könnten beispielsweise <a href="Gro%C3%9Frechner" title="Großrechner">großrechnerbasierte</a> Individualentwicklungen sein, die sich oft durch unzureichende Dokumentation, veraltete Betriebs- und Entwicklungsumgebungen, zahlreiche Schnittstellen und eine hohe Komplexität auszeichnen. Die dort anzutreffende zentrale Daten- und Funktionshaltung galt mit der Einführung von <a href="Client-Server-Modell" title="Client-Server-Modell">Client-Server-Architekturen</a> als überholt.
</p><p>Solche Merkmale können der Grund dafür sein, dass sich die Ablösung solcher Systeme oft deutlich über ihr erwünschtes Lebensende hinauszieht. Sowohl in wirtschaftlichen Aufschwung- wie in Abschwungphasen wird oft repriorisiert, um die mit einer Ablösung verbundenen hohen Ausfallrisiken bzw. Umstellkosten zu umgehen. Der bloße Ersatz eines Legacy-Systems ist in der Regel nicht mit einem direkten Mehrwert, sondern meist nur mit der Einsparung von <a href="Kalkulatorische_Kosten" title="Kalkulatorische Kosten">kalkulatorischen Kosten</a> (Kosten für temporären oder dauerhaften Ausfall) oder <a href="Opportunit%C3%A4tskosten" title="Opportunitätskosten">Opportunitätskosten</a> (entgangene Umsätze wegen begrenzter Leistungsfähigkeit des Legacy-Systems) verbunden.
</p><p>Grundsätzliches Problem bei der Ablösung von Legacy-Systemen ist der gewachsene Funktionsumfang. Auch wenn recht häufig ein weiträumiger Ersatz durch mächtige <a href="Standardsoftware" title="Standardsoftware">Standardsoftware</a> stattfindet, verbleiben meist nicht abgedeckte Zusatzfunktionen und Schnittstellen. Das sind oft Alleinstellungsmerkmale der gewachsenen und über Jahrzehnte entwickelten Software, über die Standardsoftware nicht unbedingt verfügt. Oft ist eine Runderneuerung der Systeme schon deshalb schwierig, weil ihre <a href="Spezifikation#Spezifikation_in_der_Informatik" title="Spezifikation">Spezifikation</a> über die Historie hinweg lückenhaft ist, z.&nbsp;B. mit inkonsistenten <a href="Anforderung_(Informatik)" title="Anforderung (Informatik)">Anforderungen</a> oder Anwendungsfällen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Kompatibilität"><span id="Kompatibilit.C3.A4t"></span>Kompatibilität</h2></div>
<p>Abgekündigte Schnittstellen werden oft für einen bestimmten Zeitraum weiterhin unterstützt, meist aber nicht mehr weiterentwickelt, damit alte Hard- und Software auch auf neuen Systemen weiterhin lauffähig bleibt. Ein Beispiel dafür ist das <span lang="en"><a href="Unified_Extensible_Firmware_Interface" title="Unified Extensible Firmware Interface">Unified Extensible Firmware Interface</a></span> (kurz: UEFI), das ab ca. 2005 auf <a href="IBM-PC-kompatibler_Computer" title="IBM-PC-kompatibler Computer">PCs</a> die bisherige Firmware, das <a href="BIOS_(IBM_PC)" title="BIOS (IBM PC)">PC-BIOS</a>, schrittweise abgelöst hat: ab ca. 2010 wurden zwar die meisten Computer mit UEFI ausgeliefert, dieses beinhaltete aber mit dem <i><span lang="en">Compatibility Support Module</span></i> (kurz: CSM, auf Deutsch in etwa <i>Kompatibilitätsunterstützungsmodul</i>) eine BIOS-<a href="Emulator" title="Emulator">Emulation</a>, sodass sich ein UEFI-PC wie ein PC mit BIOS verhalten kann, wenn dies eine <a href="Erweiterungskarte" class="mw-redirect" title="Erweiterungskarte">Erweiterungskarte</a> oder das Betriebssystem (die Software) zum Betrieb benötigt. Dies war z.&nbsp;B. bei vielen <a href="Grafikkarte" title="Grafikkarte">Grafikkarten</a> um 2010 noch notwendig, deren Video-BIOS („VBIOS“, die <a href="Firmware" title="Firmware">Firmware</a> der Grafikkarte) ein BIOS voraussetzte. Auch das verbreitetste PC-Betriebssystem <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> benötigte bis <a href="Microsoft_Windows_XP" title="Microsoft Windows XP">Windows&nbsp;XP</a> grundsätzlich ein BIOS und bis <a href="Microsoft_Windows_7" title="Microsoft Windows 7">Windows&nbsp;7</a> ein VBIOS (und damit auch im UEFI-Betriebsmodus ein geladenes CSM). Nach einer Übergangsphase wurde nach 2020 das CSM weggelassen – und damit die <i>Altlast</i> BIOS in Form der BIOS-Emulation, das daher auch oft als „Legacy BIOS“ bezeichnet wurde. Weil der Übergang der PC-Firmware vom BIOS zum UEFI ein fließender war, werden Funktionen der Firmware teilweise immer noch als „<a href="BIOS" title="BIOS">BIOS</a>“ bezeichnet, wie etwa das „BIOS-Setup“ (das Einstellungsmenü der Firmware).
</p><p>Auch <a href="Programmierschnittstelle" title="Programmierschnittstelle">Programmierschnittstellen</a> (engl. <span lang="en">Application Programming Interface</span>, kurz API) werden meist als „Legacy-Schnittstellen“ bezeichnet, wenn diese nicht weiterentwickelt und durch modernere Schnittstellen ersetzt werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Umgang_mit_Legacy-Systemen">Umgang mit Legacy-Systemen</h2></div>
<p>Der Einsatz <a href="Serviceorientierte_Architektur" title="Serviceorientierte Architektur">serviceorientierter Architekturen</a> bietet sinnvolle Ansätze, die Schnittstellenproblematik durch Einsatz von Konnektoren abzudecken. Dabei werden die auszutauschenden Systeme nach außen „gekapselt“, indem eine Zwischenschicht aus verschiedenen Quellsystemen eine gemeinsame Schnittstelle betreibt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Brownfield_(Softwareentwicklung)" title="Brownfield (Softwareentwicklung)">Brownfield (Softwareentwicklung)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Michael C. Feathers, <i>Working Effectively with Legacy Code,</i> 2009 (<i>Effektives Arbeiten mit Legacy Code,</i> 2010).</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external free" href="https://ieeexplore.ieee.org/document/10556554">https://ieeexplore.ieee.org/document/10556554</a> Explaining the Business-Technological Age of Legacy Information Systems | IEEE Journals &amp; Magazine | IEEE Xplore. (englisch)</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Michael C. Feathers: „Working Effectively with Legacy Code“ (englisch)</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">Lars Jacobi - „Alptraum Legacy Code - Wie gehen Profis damit um?“</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text">Dylan Beattie - <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=wPjHuvulivM">YouTube: Ctrl-Alt-Del: Learning to Love Legacy Code</a> (englisch), Vortrag Februar 2019, Uploaddatum weicht ab</span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-01-07" href="https://de.wikipedia.org/wiki/?title=Altsystem&amp;oldid=252012160">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>